home *** CD-ROM | disk | FTP | other *** search
/ Windows Expert / Windows Expert.iso / windownt / perlnt.zip / t / cmd / switch.nt < prev    next >
Text File  |  1993-07-25  |  2KB  |  77 lines

  1. #!./perl
  2.  
  3. # $Header: switch.t,v 4.0 91/03/20 01:49:44 lwall Locked $
  4.  
  5. print "1..18\n";
  6.  
  7. sub foo1 {
  8.     $_ = shift(@_);
  9.     $a = 0;
  10.     until ($a++) {
  11.     next if $_ eq 1;
  12.     next if $_ eq 2;
  13.     next if $_ eq 3;
  14.     next if $_ eq 4;
  15.     return 20;
  16.     }
  17.     continue {
  18.     return $_;
  19.     }
  20. }
  21.  
  22. print do foo1(0) == 20 ? "ok 1\n" : "not ok 1\n";
  23. print do foo1(1) == 1 ? "ok 2\n" : "not ok 2\n";
  24. print do foo1(2) == 2 ? "ok 3\n" : "not ok 3\n";
  25. print do foo1(3) == 3 ? "ok 4\n" : "not ok 4\n";
  26. print do foo1(4) == 4 ? "ok 5\n" : "not ok 5\n";
  27. print do foo1(5) == 20 ? "ok 6\n" : "not ok 6\n";
  28.  
  29. sub foo2 {
  30.     $_ = shift(@_);
  31.     {
  32.     last if $_ == 1;
  33.     last if $_ == 2;
  34.     last if $_ == 3;
  35.     last if $_ == 4;
  36.     }
  37.     continue {
  38.     return 20;
  39.     }
  40.     return $_;
  41. }
  42.  
  43. print do foo2(0) == 20 ? "ok 7\n" : "not ok 1\n";
  44. print do foo2(1) == 1 ? "ok 8\n" : "not ok 8\n";
  45. print do foo2(2) == 2 ? "ok 9\n" : "not ok 9\n";
  46. print do foo2(3) == 3 ? "ok 10\n" : "not ok 10\n";
  47. print do foo2(4) == 4 ? "ok 11\n" : "not ok 11\n";
  48. print do foo2(5) == 20 ? "ok 12\n" : "not ok 12\n";
  49.  
  50. sub foo3 {
  51.     $_ = shift(@_);
  52.     if (/^1/) {
  53.     return 1;
  54.     }
  55.     elsif (/^2/) {
  56.     return 2;
  57.     }
  58.     elsif (/^3/) {
  59.     return 3;
  60.     }
  61.     elsif (/^4/) {
  62.     return 4;
  63.     }
  64.     else {
  65.     return 20;
  66.     }
  67.     return 40;
  68. }
  69.  
  70. print do foo3(0) == 20 ? "ok 13\n" : "not ok 13\n";
  71. print do foo3(1) == 1 ? "ok 14\n" : "not ok 14\n";
  72. print do foo3(2) == 2 ? "ok 15\n" : "not ok 15\n";
  73. print do foo3(3) == 3 ? "ok 16\n" : "not ok 16\n";
  74. print do foo3(4) == 4 ? "ok 17\n" : "not ok 17\n";
  75. print do foo3(5) == 20 ? "ok 18\n" : "not ok 18\n";
  76.  
  77.